perm filename L70MAN.PUB[L70,TES] blob
sn#039432 filedate 1973-04-27 generic text, type T, neo UTF8
00100 .COMMENT LISP70 MANUAL FIRST DRAFT ;
00200 .NOJUST
00300 .BEGIN CENTER
00400 .GROUP SKIP 10 ; TURN ON "{" ;
00500 LISP70 MANUAL
00600
00700 STANFORD LISP1.6 USERS VERSION (PDP10)
00800
00900 FIRST DRAFT
01200 .SKIP 8
01300 .require "pubmac.nun[2,TES]" source_file
01400 .standard front("I", "!.A")
01500 .COUNT PAGE
01600 .every footing(,{PAGE},)
01700 .EVERY HEADING(,{DATE},LISP70)
00100 .SEC INTRODUCTION
00200 .SS LISP71 AND LISP72
00300 LISP70 is an extensible and portable programming
00400 language based on LISP. It is used to define languages
00500 tailored to special applications and to tailor
00600 their implementations to particular system environments.
00700
00800 The first language implemented using LISP70 is called LISP71.
00900 It is largely compatible with LISP1.6. That is, a program
01000 written in LISP1.6 or in its MLISP will be processed by LISP71
01100 after minimal changes. Notable exceptions to compatability
01200 are machine-coded functions, Alvine, and
01300 implementation-dependent conventions such as SPECIAL
01400 declarations.
01500
01600 The second language implemented using LISP70 is called LISP72.
01700 It is a block-structured Algol-like language that has LISP71 as a subset
01800 except for those features that were included in LISP71 as
01900 concessions to LISP1.6 compatability. For example, in LISP71,
02000 a property list is a list, but in LISP72 it is a hash table.
02100
02200 The reason LISP71 has been provided is so that LISP1.6
02300 users can immediately take advantage of some of LISP70's
02400 advantages with minimal reprogramming. It also
02500 provides a sytem that is comparable with LISP1.6 to make
02600 performance tests. Users are encouraged to switch to
02700 LISP72 as soon as compatability ceases to be an issue.
02800
02900 .SS USING LISP71
03000
03100 .SS USING LISP72
03200
00100 .SEC BLOCK STRUCTURE IN LISP72
00200 .SS DENOTATION
00300
00400 >SS BINDING
00500
00600 .SS DECLARATIONS
00700
00800 .SS EXPRESSIONS
00900
00100 .SEC FREE VARIABLES IN LISP71
00200 .SS DENOTATION
00300
00400 .SS BINDING
00500
00600 .SS PUBLIC DECLARATIONS
00700
00800 .SS FREE OCCURRENCES
00900
00100 .SEC DATA TYPES IN LISP72
00200 .SS RECORDS AND FIELDS
00300
00400 .SS LISTS, CAR, CDR